Computer networks allow the exchange of many different types of content, data and information between computer systems and computerized devices. As an example, the Internet allows a user of web browser software operating on a client computer system to access content or data located on a server computer system across the network. The content might be audio data, video data, text or document data, database data or any other form of data. Due to such wide varieties of data types and other considerations, information system developers have created techniques to allow computer users and/or software applications to identify or classify the data or content that is to be stored and accessed in a computer system. Such techniques allow a content developer to create content such as text or audio data and to associate with that content a set of classifications or attributes that describe information related to the content. One example of a system or operational environment that allows content developers to associate classification information to content using the eXtensible Markup Language or XML.
Generally, XML provides a meta-markup language that defines a syntax used to define domain-specific, semantic, structured markup languages. As an example, a content developer may create text content such as a purchase order for a product sold by a business. The text content may be created in the form of an XML document that contains purchase order data or content identifying specifics of the purchased product. Specific examples of such purchase order content might include a detailed description of the product, the product manufacturer, technical specifications of the product, uses of the product and the like. Conventional software systems that utilize XML can provide repositories or registries that allow a content developer to register content, such as the purchase order content in the example above or other content such as, for example, product catalog content, as a “repository item” within the registry to allow other entities (customers for example) to access the content via other computer systems over a computer network such as the Internet. A data publisher or content developer or provider can thus publish content to the registry in the form of a repository item for structured access by others.
In addition to providing the repository item to the XML registry, the content developer can produce or create XML classification data or “metadata” that is related to the published repository item (i.e., is related to the content) and that conforms to an XML registry specification for such information. An example of such a specification can be found on the Internet at http://www.ebxml.org/specs/ebRIM.pdf. The terms “classification data” and “metadata” are generally used interchangeably herein. A set of metadata associated with a particular repository item is often referred to as a “registry object” and describes or catalogs the repository item. The metadata defined by a registry object includes classification data that classifies or categorizes the repository item content. Furthering the purchase order example above, if a repository item contains the purchase order content, then a registry object associated with that repository item may contain values specific to this purchase order for attributes that generically relate to all types of purchase orders. That is, the particular attributes of that registry object (i.e., that metadata) for that repository item can contain values related to that repository item. A collection of registry objects containing generically applicable metadata attributes can thus be used as an index for the repository items.
By way of example, metadata attributes may contain values that indicate that a repository item is in fact a purchase order (e.g., a “repository item type” attribute value) and may further indicate the status of the purchase order (e.g., open, closed, in progress, etc.), the type of product related to the purchase order (e.g., for goods or for services) and other values for generic or abstract information that is typically relevant to all purchase orders. Metadata does not typically describe specific low-level details related to a particular purchase order such as the product details of the item to be purchased since such details may or may not exist in other purchase orders. In other words, XML registry objects or metadata define a series of general or common attributes or characteristics and associated values or ranges of values that those attributes may acquire for general types of repository items in order to provide a general and indexable base of information associated with or related to all repository items in a registry. Typically, the content developer creates the registry object containing the metadata associated with the repository item content during or after creation of the repository item content.
The particular format of the metadata may be agreed-upon by all parties requiring access to such information (i.e., in a published XML specification) thus allowing a content producer to create a standard set of metadata for a particular type of repository content and further allowing that metadata to be accessed or queried in a standard manner by different users requiring access to such information.
One purpose of XML registry objects or metadata then is to allow efficient discovery of repository items within the XML registry by querying registry object metadata attribute information in registry objects that collectively form an index. By way of example, conventional XML registry query techniques allow a content publisher to publish a product catalog (i.e., repository item content) and associated registry object information to an XML registry. The metadata defined within the registry object(s) associated with that catalog content can be searched or queried for information concerning items in the catalog based upon the values of the metadata attributes.
For a particular type of repository item content such as audio data, an agreed-upon set of XML tags defining attributes that relate to all types of audio data can be documented in a Document Type Definition (DTD) that can be accessed by users who have a need to query an XML registry. In this manner, if an XML registry contains audio data content in the form of audio repository items, the user desiring to query such a registry to obtain information relating to be audio data such as titles of songs, artists or other information can obtain the XML DTD for this registry that defines the standardized attribute tags to which the metadata within the registry objects for this audio data is formatted. In essence, the DTD describes a schema or order and tags that are used by the registry object metadata and once this is known, the metadata can serve as an indexing mechanism for repository item content within an XML registry.
In addition to the ability to register repository item content and registry objects within conventional XML registries, such registries also provide the ability to register services such as web services that may be accessed by users or software applications. As an example, consider an organization such as a library that operates a computer system on the Internet that provides a library XML registry. The library XML registry might contain repository items such as electronic book repository content. In addition, the library XML registry might also contain registry objects containing classification data or metadata associated with each of the electronic book repository items. Such metadata may serve as an electronic card catalog to provide searchable book titles, authors, ISBN numbers, and the like. Further still, a developer of such a system may create a book checkout or reservation service (e.g., a web service) that allows a remote user on a computer network to access the library XML registry via a web browser in order to query the registry for registry object classification data (i.e., metadata) in order to determine or discover what electronic book contents is/are available for access (e.g., checkout or reservation) within the library XML registry. The book checkout or reservation service is registered with the registry in a manner similar to the way in which the library registers repository item content and/or registry objects. Such a service registered with a registry is sometimes referred to as a web service and such services “know” how to automatically read, search or otherwise access registry object classification data (i.e., metadata) in a structured manner (i.e., frequently by a graphical user interface presented to a user of such a service) to allow indexing access to repository item content also registered within the registry. Users can thus use a registry's web service(s) to identify relevant content in the register by querying the registry's metadata. Once the appropriate content is found based on the metadata query, the user may access that content.